Every day computer users login to computers and systems that require authentication by providing the authenticating system with information that will positively identify the user. In most cases that information consists of a username/ID and a matching static, reusable password. Replacing such static passwords with single-use passwords and, where possible, using two-factor authentication is one approach for securing corporate networks, applications and information assets.
Unfortunately, use or transfer of sensitive information can create security vulnerabilities for many different reasons. For example, in situations where the user attempts to login to a system from a computer or other electronic device using a communications connection, such as the Internet, information traveling over the network may be intercepted by unauthorized individuals using network sniffers. This information can then subsequently be used to illegally obtain access to the system. The use of more secure communications protocols, such as Secure Socket Layer (SSL), improves security by encrypting the information being transmitted, thereby making it virtually impossible for others to use it to gain access to the system, even if they manage to intercept the user identifying information. Unfortunately many authenticating systems do not use secure protocols, leaving sensitive information vulnerable to attack.
Another problem with authentication using a static, reusable password is that hackers may be able to gain access to the system by guessing the password. This applies not only to weak passwords that can be uncovered by using dictionary attacks, often passwords include the user's name, his nickname, spouse's or pet's name, etc. Although this threat can be reduced by having the authenticating system impose a maximum number of login attempts before blocking the account, it remains a real threat nonetheless.
One significant security threat involves widely available spyware, including keystroke capturing software which, as the name suggests, captures the keystrokes that are made on a computer's keyboard and stores this information for later retrieval by or transmission to the person or persons who installed the software or who know of its presence. In many cases, the existence of this software is difficult or virtually impossible to detect. Even if encryption of the information is used during transmission over a network, the presence of this type of software on the computer from which a user logs in is not going to provide any security, as the username/ID and password have already been captured at the source, before it has been encrypted. This threat is particularly acute when the user is accessing systems from a computer or other electronic device that may not be his own, such as other people's computers or, more particularly, computers found in public places such as hotels, airports and Internet cafes, to name but a few.
In view of these vulnerabilities and in order to limit the risk of unauthorized access, methods are available that enable the use of one-time passwords (OTP), thereby greatly increasing login security. In such cases, where passwords are only valid for a single login, even capturing or knowing the password will be meaningless as it can only be used once. In broad terms there are two major types of OTP solutions: (i) hardware based solutions; and (ii) S/KEY based solutions.
Hardware Based Solutions
The vast majority of OTP solutions involve the use of some kind of physical device, such as tokens, smart cards, USB flash drives, etc., that will generate them. Companies providing such hardware based solutions include VERISIGN™, ACTIVIDENTITY™, VASCO™ and RSA SECURITY™ to name a few. Most, like RSA's authentication token for example, generate a new 6-digit numeric passcode every 30 or 60 seconds that will be used together with a user's PIN code to create a one-time password. This is generally referred to as two-factor authentication.
Other approaches, such as the systems and methods taught in European Patent Application No. EP 1 445 917 to Kuclar et al. and U.S. Patent Application No. 2003/0172272 to Ehlers et al. for example, include the use of a mobile communications device, where the one-time password is sent by the authenticating system to the user's mobile phone or other mobile device via a Short Message Service (SMS). Other systems, such as those described in U.S. Patent Application No. 2002/0038426 to Pettersson et al. and U.S. Pat. No. 6,636,973 to Bagley for example, use biometric devices such as iris scanners and fingerprint scanners to positively identify the user. All of the above described methods require the use of a physical device.
The use of physical devices however has several distinct disadvantages. In addition to the significant cost of implementing device-based solutions, particularly where the number of users is large, their biggest drawback is that the authentication device may not be available, be rendered useless by abuse or accident or may be lost. In the latter case there is a theoretical chance of an individual gaining unauthorized access to a system where for example key-stroke logging software was running on the computer from which a login was attempted and the username/ID and the static password or PIN code have already been captured. Although the risk in the case of loss can be minimized by the immediate reporting of the loss of the device, all scenarios mentioned above will prevent a legitimate user who, for whatever reason, does not have access to the authentication device from obtaining access to the remote system. The use of non-OTP access in that case could of course significantly compromise security.
S/KEY Based Solutions
These are software solutions based on S/KEY, a one-time, challenge-response password scheme developed for use on UNIX™-like operating systems to authenticate a user based on a one-way hash function. Generic open source implementations can be used to enable its use on other systems.
A user's real password is not directly transmitted across the network. Rather, the real password is combined with a short set of characters and a decrementing counter to form a one-time password. As the one-time password is only used once, passwords intercepted by a password sniffer or keystroke logger are not useful to an attacker.
Because the short set of characters does not change until the counter reaches zero, it is possible to prepare a list of single-use passwords, in sequence, that can be carried by the user. Alternatively, the user can present the password, characters and desired counter value to a local calculator to generate the appropriate one-time password that can then be transmitted over the network.
The S/KEY solution, however, also has drawbacks. It is sensitive to a “man in the middle” attack if used by itself, although this could be solved by using SSL or a similar security protocol which authenticates the server and gives point-to-point security between the client and server.
In addition, the secret passwords used by S/KEY solutions may of course never travel across an insecure network and it is the user's responsibility to see to this. A user should therefore only be able to change his secret password or create a new list of one-time passwords when logged in from a machine on a secure network or on the console of the system.
Lastly, because the number of hash function iterations executed by the user decreases by one each time, this solution of course requires the user to re-initialize the system whenever the last single-use password has been used or he will be unable to log in again.
One approach where no device is necessary is taught in U.S. Patent Application No. 2006/0206919 to Montgomery et al., which describes a method where the user is required to generate a one-time PIN code by performing mathematical manipulations on the user's known PIN code and a system supplied random number or on the user's known PIN code, a system supplied random number and a transformation PIN code, making it prone to error and less user-friendly.
In view of the foregoing, what are needed are methods and systems for enabling secure login solutions using OTP that overcome the limitations and disadvantages of the prior art. In particular, what are needed are methods and systems for enabling secure login solutions using OTP that are easy to implement, require no physical devices, require no extra computational power, and require no mathematical or other data manipulation on the part of the user.